-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(stripe-subscription): Leaner, more extensible subscriptions #260
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
martijnvdbrug
changed the title
feat(stripe-subscription): Extensible subscriptions
feat(stripe-subscription): Leaner, more extensible subscriptions
Nov 2, 2023
7 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR aims to make the Stripe Subscription Plugin more extensible: each plugin-consumer should be able to define it's custom subscription use cases.
Some examples that should be supported:
This means we should support these types of payments:
The configurable SubscriptionStrategy is now the core of this plugin, which should give a clear understanding of how subscriptions are created.
The GraphQL schema is simplified and now supports the following queries and mutations:
createStripeSubscriptionIntent
to startpreviewStripeSubscription
to display subscriptions on the storefrontpreviewStripeSubscriptionForProduct
to display subscription previews for all variants of a product.addItemToOrder
mutation, as usual.See README for more detailed examples.
Downpayment example / guide
This example demonstrates how to create recurring down payments. For simplicity, all product variants are treated as monthly subscriptions, where their price is the monthly fee. The subscription duration is set to a fixed 12 months, but this can be made configurable per product variant (or with custom scheduling attached to a variant).
A customer can choose to make a down payment, which results in a reduced monthly price.
Prerequisites
subscriptionDownpayment
is defined as a custom field on an order lineThis results in 2 subscriptions being returned for the variant: A monthly subscription and a downpayment subscription that occurs every 12 months.
Breaking changes
Plenty, but the readme is all up to date, check it out :-)
Checklist
📌 Always:
⚡ Most of the time:
📦 For publishable packages:
package.json
to the next patch/minor/major?